package com.zuipin.vo;

import java.math.BigDecimal;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel(description = "订单详情vo")
public class OrderDetailVo {
	private String		proSku;				// 商品编号
	
	private BigDecimal	productNum;			// 商品数量
	
	private String		productName;		// 商品名称
	
	private String		businessType;		// 联营/自营
	
	private BigDecimal	productPrice;		// 商品原价
	
	private Integer		jfPrice;			// 积分原价（单价）
	
	private String		productProperty;	// 商品属性
	
	private BigDecimal	purchasePrice;		// 购买价
	
	private String		packNo;				// 泡袋ID
	
	private Integer		useJfSum;			// 使用的积分（实付积分*数量）
	
	private BigDecimal	useRedPacketSum;	// 使用的红包
	
	private BigDecimal	useCashBackSum;		// 使用的返现
	
	private BigDecimal	packWeight;			// 泡袋净重
	
	private String		premiums;			// 是否是赠品
	
	private Long		supplierId;			// 供应商ID
	
	private BigDecimal	subtotal;			// 小计（原价*数量）
	
	private Integer		giveJfSum;			// 赠送的积分
	
	private BigDecimal	giveCashBackSum;	// 赠送的返现
	
	private BigDecimal	useRuleSum;			// 每款商品所均摊的购物车优惠金额
	
	private BigDecimal	actualPaySubtotal;	// 实际支付小计
	
	private Long		ruleSetId;			// 规则ID
	
	private String		ruleName;			// 规则名称
	
	private Long		cartId;				// 购物车ID
	
	private BigDecimal	jfPurchasePrice;	// 积分实付单价
	
	private Short		isJfProduct;		// 是否是积分商品 1是 0不是
	
	private BigDecimal	jfSubtotal;			// 积分小计(积分原价*数量)
	
	@ApiModelProperty(value = "联营 JOIN_SALES /自营 SELF_SALES", required = true)
	public String getBusinessType() {
		return businessType;
	}
	
	public void setBusinessType(String businessType) {
		this.businessType = businessType;
	}
	
	@ApiModelProperty(value = "商品编码", required = true)
	public String getProSku() {
		return proSku;
	}
	
	public void setProSku(String proSku) {
		this.proSku = proSku;
	}
	
	@ApiModelProperty(value = "商品数量", required = true)
	public BigDecimal getProductNum() {
		return productNum;
	}
	
	public void setProductNum(BigDecimal productNum) {
		this.productNum = productNum;
	}
	
	@ApiModelProperty(value = "商品名称", required = true)
	public String getProductName() {
		return productName;
	}
	
	public void setProductName(String productName) {
		this.productName = productName;
	}
	
	@ApiModelProperty(value = "商品原价格", required = true)
	public BigDecimal getProductPrice() {
		return productPrice;
	}
	
	public void setProductPrice(BigDecimal productPrice) {
		this.productPrice = productPrice;
	}
	
	@ApiModelProperty(value = "积分原价", required = false)
	public Integer getJfPrice() {
		return jfPrice;
	}
	
	public void setJfPrice(Integer jfPrice) {
		this.jfPrice = jfPrice;
	}
	
	@ApiModelProperty(value = "商品属性", required = false)
	public String getProductProperty() {
		return productProperty;
	}
	
	public void setProductProperty(String productProperty) {
		this.productProperty = productProperty;
	}
	
	@ApiModelProperty(value = "购买价格", required = true)
	public BigDecimal getPurchasePrice() {
		return purchasePrice;
	}
	
	public void setPurchasePrice(BigDecimal purchasePrice) {
		this.purchasePrice = purchasePrice;
	}
	
	@ApiModelProperty(value = "使用的jf", required = false)
	public Integer getUseJfSum() {
		return useJfSum;
	}
	
	public void setUseJfSum(Integer useJfSum) {
		this.useJfSum = useJfSum;
	}
	
	@ApiModelProperty(value = "泡袋No", required = false)
	public String getPackNo() {
		return packNo;
	}
	
	public void setPackNo(String packNo) {
		this.packNo = packNo;
	}
	
	@ApiModelProperty(value = "使用的红包金额", required = false)
	public BigDecimal getUseRedPacketSum() {
		return useRedPacketSum;
	}
	
	public void setUseRedPacketSum(BigDecimal useRedPacketSum) {
		this.useRedPacketSum = useRedPacketSum;
	}
	
	@ApiModelProperty(value = "使用的返现金额", required = false)
	public BigDecimal getUseCashBackSum() {
		return useCashBackSum;
	}
	
	public void setUseCashBackSum(BigDecimal useCashBackSum) {
		this.useCashBackSum = useCashBackSum;
	}
	
	@ApiModelProperty(value = "泡袋净重", required = true)
	public BigDecimal getPackWeight() {
		return packWeight;
	}
	
	public void setPackWeight(BigDecimal packWeight) {
		this.packWeight = packWeight;
	}
	
	@ApiModelProperty(value = "供应商id", required = true)
	public Long getSupplierId() {
		return supplierId;
	}
	
	@ApiModelProperty(value = "赠品类型（NO_PREMIUM：不是赠品/CART_PREMIUM:购物车自带的赠品/ NEW_ADD_PREMIUM:后台新增的赠品）", required = true)
	public String getPremiums() {
		return premiums;
	}
	
	public void setPremiums(String premiums) {
		this.premiums = premiums;
	}
	
	public void setSupplierId(Long supplierId) {
		this.supplierId = supplierId;
	}
	
	@ApiModelProperty(value = "小计（原价*数量）", required = true)
	public BigDecimal getSubtotal() {
		return subtotal;
	}
	
	public void setSubtotal(BigDecimal subtotal) {
		this.subtotal = subtotal;
	}
	
	@ApiModelProperty(value = "赠送的积分", required = true)
	public Integer getGiveJfSum() {
		return giveJfSum;
	}
	
	public void setGiveJfSum(Integer giveJfSum) {
		this.giveJfSum = giveJfSum;
	}
	
	@ApiModelProperty(value = "赠送的返现", required = true)
	public BigDecimal getGiveCashBackSum() {
		return giveCashBackSum;
	}
	
	public void setGiveCashBackSum(BigDecimal giveCashBackSum) {
		this.giveCashBackSum = giveCashBackSum;
	}
	
	@ApiModelProperty(value = "每款商品所均摊的购物车优惠金额")
	public BigDecimal getUseRuleSum() {
		return useRuleSum;
	}
	
	public void setUseRuleSum(BigDecimal useRuleSum) {
		this.useRuleSum = useRuleSum;
	}
	
	@ApiModelProperty(value = "实际支付小计")
	public BigDecimal getActualPaySubtotal() {
		return actualPaySubtotal;
	}
	
	public void setActualPaySubtotal(BigDecimal actualPaySubtotal) {
		this.actualPaySubtotal = actualPaySubtotal;
	}
	
	@ApiModelProperty(value = "规则ID")
	public Long getRuleSetId() {
		return ruleSetId;
	}
	
	public void setRuleSetId(Long ruleSetId) {
		this.ruleSetId = ruleSetId;
	}
	
	@ApiModelProperty(value = "规则名称")
	public String getRuleName() {
		return ruleName;
	}
	
	public void setRuleName(String ruleName) {
		this.ruleName = ruleName;
	}
	
	@ApiModelProperty(value = "购物车ID（行为规则赠送的商品）")
	public Long getCartId() {
		return cartId;
	}
	
	public void setCartId(Long cartId) {
		this.cartId = cartId;
	}
	
	@ApiModelProperty(value = " 积分实付单价")
	public BigDecimal getJfPurchasePrice() {
		return jfPurchasePrice;
	}
	
	public void setJfPurchasePrice(BigDecimal jfPurchasePrice) {
		this.jfPurchasePrice = jfPurchasePrice;
	}
	
	@ApiModelProperty(value = "1 是积分商品  0不是")
	public Short getIsJfProduct() {
		return isJfProduct;
	}
	
	public void setIsJfProduct(Short isJfProduct) {
		this.isJfProduct = isJfProduct;
	}
	
	@ApiModelProperty(value = "积分小计(积分原价*数量)")
	public BigDecimal getJfSubtotal() {
		return jfSubtotal;
	}
	
	public void setJfSubtotal(BigDecimal jfSubtotal) {
		this.jfSubtotal = jfSubtotal;
	}
	
	public boolean equals(Object obj) {
		// 判断obj是否和this相等，保证自反性
		if (this == obj)
			return true;
		// 判断obj是否为null，保证最后一条准则
		if (obj == null)
			return false;
		// 判断两个对象的实际类型是否相等，
		// 如果不相等，则说明比较的是两个不同种类的对象，应当返回false
		if (getClass() != obj.getClass())
			return false;
		// 强制类型转换
		// 由于之前已经使用getClass判断过实际类型，因此这里强转是安全的
		OrderDetailVo vo = (OrderDetailVo) obj;
		// 判断每个属性是否相等
		// 对于基本类型的属性用“==”比较，对象类型的属性用equals比较
		if (this.proSku.equals(vo.getProSku())) {
			return true;
		} else {
			return false;
		}
	}
	
	// 这个方法没有参数，返回值为一个int类型的数值
	public int hashCode() {
		return proSku.hashCode();
	}
	
}
